package soulkun.library.utils.random

import kotlin.random.Random

object RandomUtils {

    /**
     * 随机指定范围内 N 个不重复的数，返回数组
     * @param min 指定范围最小值
     * @param max 指定范围最大值
     * @param n 随机数个数
     */
    fun randomArray(min: Int, max: Int, n: Int): Array<Int>? {
        val rand = Random
        if (n > max - min + 1 || max < min) {
            return null
        }
        val result = Array<Int>(n){ -1 }
        var count = 0
        while (count < n) {
            // MIN 和 MAX 范围内的随机数
            val num = rand.nextInt(max - min + 1) + min
            var flag = true
            for (j in 0 until n) {
                if (num == result[j]) {
                    flag = false
                    break
                }
            }
            if (flag) {
                result[count] = num
                count++
            }
        }
        return result
    }

}